#ifndef CONSTANTES_H_
#define CONSTANTES_H_
#include <string>
using namespace std;

class Constantes {
public:

	// Archivos para crear los objetos compartidos
	static const string ARCHIVO_LOG;
	static const string ARCHIVO_FIFO_PRODUCTOR_CONSUMIDOR_DE_CLIENTES; // Archivo para fifo del prod-cons de clientes
	static const string ARCHIVO_MCOMPARTIDA_CAJA; // Archivo para la memoria compartida de la caja
	static const string ARCHIVO_SEMAFORO_CAJA; // Archivo para el semaforo de acceso a la caja
	static const string ARCHIVO_PREFIJO_SURTIDOR; // Comienzo de cada archivo de surtidor
	static const string ARCHIVO_PETICION_CAJA_ADMINISTRADOR;
	static const string ARCHIVO_COLA_MENSAJES_CAJA;

	// Nombres archivos procesos
	static const string ARCHIVO_CLAVE_JEFE_EMPLEADO;
	static const string ARCHIVO_CLAVE_ESTADO_JEFE_EMPLEADO;
	static const string ARCHIVO_CLAVE_SEMAFORO_JEFE_EMPLEADO;
	static const string ARCHIVO_CLAVE_SEMAFORO_ESTADO_EMPLEADO;
	static const char CHAR_CLAVE_JEFE_EMPLEADO;


	// El administrador consultara la caja cada un random entre minimo y maximo
	static const int MINIMO_ADMINISTRADOR_CONSULTA_CADA;
	static const int MAXIMO_ADMINISTRADOR_CONSULTA_CADA;

	// El administrador tardara consultando la caja un random entre minimo y maximo
	static const int MINIMO_TIEMPO_CONSULTA_ADMINISTRADOR;
	static const int MAXIMO_TIEMPO_CONSULTA_ADMINISTRADOR;

	// El empleado tardara en atender a un cliente un random entre minimo y maximo
	static const int MINIMO_TIEMPO_ATENCION_EMPLEADO;
	static const int MAXIMO_TIEMPO_ATENCION_EMPLEADO;

	// Dinero inicial que tiene la caja al abrir la estacion
	static const unsigned long int DINERO_INICIAL_CAJA;

	/* El jefe de estacion tardara, luego de consumir un cliente
	 * un tiempo random entre minimo y maximo antes de intentar
	 * asignarle un empleado.
	 */
	static const int MINIMO_TIEMPO_ATENCION_JEFE;
	static const int MAXIMO_TIEMPO_ATENCION_JEFE;

	// El prod de clientes produce clientes uniformemente con media y desvio
	static const int MEDIA_PRODUCCION_CLIENTES;
	static const int DESVIO_PRODUCCION_CLIENTES;

	// Minima y maxima nafta que cargan los clientes (litros)
	static const int MINIMO_NAFTA_CLIENTES;
	static const int MAXIMO_NAFTA_CLIENTES;

	// Precio de la nafta (por litro)
	static const int PRECIO_NAFTA;

	// Codigos de error
	static const int ERROR_JEFE_EMPLEADO_MEMORIA_V;
	static const int ERROR_JEFE_EMPLEADO_ESTADO_P;
	static const int ERROR_JEFE_EMPLEADO_ESTADO_V;

	// Tamanio en bytes de un int
	static const int INT_SIZE;

	// Cant de parametros
	static const int CANT_PARAMETROS;

};

#endif /* CONSTANTES_H_ */
